Memory Expansion for the MC-10
By Darren Atkinson
January 5, 2011
The MCX128 is a memory expansion module for the TRS-80 MC-10 Micro Color
Computer. The module includes the following features:
• 128K RAM (utilizing Bank Selection).
• 16K EPROM.
• Four Memory Map modes for the ROM region (C000-FFFF):
- 16K External ROM
- 8K RAM / 8K External ROM
- 8K RAM / 8K Internal ROM
- 16K RAM
• Software control of RAM Bank selection and Memory Map Mode.
- 2 -
0000 - 0003
0004 - 0007
0008 - 000E
6803 Status / Control
0 0 OF
0010 - 0013
6803 RAM Control Reg
0015 - 001F
0020 - 0 07F
0080 - 00FF
On-chip CPU RAM / Expansion RAM
0100 - 3FFF
4000 - 4FFF
Built-In RAM / Expansion RAM
5000 - BEFF
RAM Bank Control Reg
ROM Map Control Reg
BF80 - BFFF
Keyboard / VDG / Sound
C000 - DFFF
EPROM or Expansion RAM
E000 - FFFF
Built-in ROM, EPROM or Expansion RAM
The MCX128 divides the 64K address space into two 32K pages. Page 0 is non-
contiguous and covers the first 16K (0000-3FFF) and last 16K (C000-FFFF) of the
address space. Page 1 covers the middle 32K (4000-BFFF) and corresponds to the region
where the internal 4K and stock 16K expansion RAM would reside.
- 3 -
Each of these pages can be independently switched between two banks of RAM. The
value stored in the RAM Bank Control Register (BFOO) determines which banks are
active. The register can be read from, as well as written to:
Bank Selection for Page 0
Bank Selection for Page 1
Bank selection does not affect addresses 0080-00FF if they are mapped to the 6803
CPU’s on-chip RAM (default).
The region from C000-FEFF is only affected by bank selection for addresses that are
mapped to RAM by the ROM Map Control Register (see below). When the 16K RAM
map mode is active, the upper 256 bytes of the address space (FF00-FFFF) are always
mapped to bank 0 (the 256 bytes in bank 1 are never accessible).
The VDG always reads video RAM from Bank 0 regardless of the current bank selection
for page 1 .
The MC-lO’s 4K built-in RAM (4000-4FFF) is accessed when Bank 0 is selected for
Page 1. Selecting Bank 1 maps this area to the RAM on the MCX128. The video display
always uses the built-in RAM, so writing to this area while Bank 1 is selected does not
affect the display.
RAM for BASIC
RAM available to stock MicroColor Basic is now nearly 32K (4000-BEFF). The 256
bytes from BF00-BFFF are not mapped to RAM in order to retain access to the
Keyboard, VDG and Sound hardware as well as to provide addressable locations for the
RAM Bank and ROM Map control registers.
The extended version of MicroColor Basic (MCX Basic) can use the entire 48K region
from 0020 to BEFF, while managing the video display as a separate RAM bank.
- 4 -
Direct Page RAM
There are 101 additional Direct Page addresses that can be utilized:
• 0020 - 007F
Each of these addresses are also affected by the RAM Bank selection for Page 0,
providing 202 physical storage locations.
The 6803’s RAM Control Register (0014) can now be used to switch the address space of
0080 - 00FF between the on-chip CPU RAM and the RAM on the MCX128. If the
CPU’s on-chip RAM is enabled (default), writes to this area are mirrored by the RAM on
The MCX128 includes a socket for a 16K EPROM. Because the system starts up in 16K
External ROM mode, an EPROM must be present to boot the MC-10. The ROM region
(C000-FFFF) is sub-divided into two 8K sections. The value stored in the ROM Map
Control Register (see below) determines how the two sections are used.
ROM Map Control Register
Reading from the two 8K ROM areas can obtain data from ROM or RAM depending on
the value stored in the ROM Map Control Register (BF01). Reading the lower portion
(C000-DFFF) can access either RAM or the external EPROM. Reading the upper
portion (E000-FFFF) can access RAM, the external EPROM or the built-in ROM.
NOTE: Writes to the ROM region always go to RAM.
The ROM Map Control Register may be read from, as well as written to:
ROM Map Mode:
0 0 = 16K External ROM
0 1 = 8K RAM / 8K External ROM
1 0 = 8K RAM / 8K Internal ROM
11 = 16K RAM
- 5 -